package greg1992.lekcja4.gui;

import greg1992.lekcja3.turniej.Zawodnik;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.factories.FormFactory;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;

public class ZawodnikGUI extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField txtImie;
	private JTextField txtNazwisko;
	private JTextField txtWiek;
	private JTextField txtMotywacja;
	private JTextField txtKondycja;
	private JTextField txtStrzal;
	private JTextField txtTaktyka;
	private JTextField txtSzybkosc;
	private Zawodnik zawodnikDane;
	private boolean tylkoDoOdczytu;
	private JButton btnZapisz;
	private JButton btnZamknij;

	/**
	 * Launch the application.
	 */


	/**
	 * Create the frame.
	 */
	public ZawodnikGUI(Zawodnik zawodnik) {
		this.zawodnikDane = zawodnik;
		
		setTitle("ZawodnikGUI");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 359);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		FormLayout fl_contentPane = new FormLayout(new ColumnSpec[] {
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				ColumnSpec.decode("4cm"),
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,
				FormFactory.RELATED_GAP_COLSPEC,
				FormFactory.DEFAULT_COLSPEC,},
			new RowSpec[] {
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,
				FormFactory.RELATED_GAP_ROWSPEC,
				FormFactory.DEFAULT_ROWSPEC,});
		contentPane.setLayout(fl_contentPane);
		
		JLabel lblImie = new JLabel("Imie");
		contentPane.add(lblImie, "4, 4, right, default");
		
		txtImie = new JTextField(zawodnikDane.getImie());
		contentPane.add(txtImie, "6, 4, 4, 1, fill, default");
		txtImie.setColumns(10);
		
		JLabel lblNazwisko = new JLabel("Nazwisko");
		contentPane.add(lblNazwisko, "4, 6, right, default");
		
		txtNazwisko = new JTextField(zawodnikDane.getNazwisko());
		contentPane.add(txtNazwisko, "6, 6, 4, 1, fill, default");
		txtNazwisko.setColumns(10);
		
		JLabel lblWiek = new JLabel("Wiek");
		contentPane.add(lblWiek, "4, 8, right, default");
		
		txtWiek = new JTextField(Integer.toString(zawodnikDane.getWiek()));
		contentPane.add(txtWiek, "6, 8, 4, 1, fill, default");
		txtWiek.setColumns(10);
		
		JLabel lblMotywacja = new JLabel("Motywacja");
		contentPane.add(lblMotywacja, "4, 10, right, default");
		
		txtMotywacja = new JTextField(Double.toString(zawodnikDane.getMotywacja()));
		contentPane.add(txtMotywacja, "6, 10, 4, 1, fill, default");
		txtMotywacja.setColumns(10);
		
		JLabel lblKondycja = new JLabel("Kondycja");
		contentPane.add(lblKondycja, "4, 12, right, default");
		
		txtKondycja = new JTextField(Double.toString(zawodnikDane.getKondycja()));
		contentPane.add(txtKondycja, "6, 12, 4, 1, fill, default");
		txtKondycja.setColumns(10);
		
		JLabel lblStrzal = new JLabel("Strzal");
		contentPane.add(lblStrzal, "4, 14, right, default");
		
		txtStrzal = new JTextField(Double.toString(zawodnikDane.getStrzal()));
		contentPane.add(txtStrzal, "6, 14, 4, 1, fill, default");
		txtStrzal.setColumns(10);
		
		JLabel lblTaktyka = new JLabel("Taktyka");
		contentPane.add(lblTaktyka, "4, 16, right, default");
		
		txtTaktyka = new JTextField(Double.toString(zawodnikDane.getTaktyka()));
		contentPane.add(txtTaktyka, "6, 16, 4, 1, fill, default");
		txtTaktyka.setColumns(10);
		
		JLabel lblSzybkosc = new JLabel("Szybkosc");
		contentPane.add(lblSzybkosc, "4, 18, right, default");
		
		txtSzybkosc = new JTextField(Double.toString(zawodnikDane.getSzybkosc()));
		contentPane.add(txtSzybkosc, "6, 18, 4, 1, fill, default");
		txtSzybkosc.setColumns(10);
		
		btnZapisz = new JButton("Zapisz");
		contentPane.add(btnZapisz, "8, 22");
		
		btnZapisz.addActionListener( new ActionListener(){
			public void actionPerformed(ActionEvent e){
				zapiszDane();
			}
		});
		
		btnZamknij = new JButton("Zamknij");
		btnZamknij.addMouseListener(new MouseAdapter() {
			public void mouseClicked(MouseEvent e) {
				if(e.getButton() == MouseEvent.BUTTON1){
					dispose();
				}
			}
		});
		contentPane.add(btnZamknij, "10, 22");
	}
	
	

	
	void zapiszDane(){
		zawodnikDane.setImie( txtImie.getText() );
		zawodnikDane.setNazwisko( txtNazwisko.getText() );
		zawodnikDane.setWiek( Integer.parseInt(txtWiek.getText()) );
		zawodnikDane.setKondycja( Double.parseDouble(txtKondycja.getText()) );
		zawodnikDane.setMotywacja( Double.parseDouble(txtMotywacja.getText()) );
		zawodnikDane.setStrzal( Double.parseDouble(txtStrzal.getText()) );
		zawodnikDane.setSzybkosc( Double.parseDouble(txtSzybkosc.getText()) );
		zawodnikDane.setTaktyka( Double.parseDouble(txtTaktyka.getText()) );
		
		zawodnikDane.wypiszAtrybutyDoKonsoli();
	}
	
	public void setTylkoDoOdczytu(boolean tylkoDoOdczytu){
		this.tylkoDoOdczytu = tylkoDoOdczytu;
	}
	
	public boolean isTylkoDoOdczytu(){
		return this.tylkoDoOdczytu;
	}
	
	public void polaDoOdczytu(){
		txtImie.setEditable(!isTylkoDoOdczytu());
		txtNazwisko.setEditable(!isTylkoDoOdczytu());
		txtWiek.setEditable(!isTylkoDoOdczytu());
		txtMotywacja.setEditable(!isTylkoDoOdczytu());
		txtKondycja.setEditable(!isTylkoDoOdczytu());
		txtStrzal.setEditable(!isTylkoDoOdczytu());
		txtTaktyka.setEditable(!isTylkoDoOdczytu());
		txtSzybkosc.setEditable(!isTylkoDoOdczytu());
	}
	
}
